package savet.gui.modelos;

import savet.entidades.Trabalhador;
import savet.entidades.atributos.Atributo;
import savet.entidades.atributos.LRE;

/**
 *
 * @author Bsi 2007
 */
public class ModeloLRE extends AbstractTrabalhadoresModel {

    private static final String[] colunas = {"Pg", "", "CTPS"};

    public void addRow(Trabalhador trabalhador) {
        if (!trabalhadores.contains(trabalhador)) {
            int index = trabalhadores.size();
            trabalhadores.add(trabalhador);
            fireTableRowsInserted(index, index);
        }
    }

    @Override
    public Class<?> getColumnClass(int columnIndex) {
        if (columnIndex == 0) {
            return Integer.class;
        } else if (columnIndex == 1) {
            return LRE.class;
        } else {
            return Atributo.class;
        }
    }

  

    @Override
    public Object getValueAt(int rowIndex, int columnIndex) {
        Trabalhador t = trabalhadores.get(rowIndex);
        if (columnIndex == 0) {
            return t.getLivro().getPagina();
        } else if (columnIndex == 1) {
            return t.getLivro();
        } else {
            return t.getCtps();
        }
    }

    @Override
    public void setValueAt(Object aValue, int rowIndex, int columnIndex) {
        Trabalhador t = trabalhadores.get(rowIndex);
        if (columnIndex == 0) {
            t.getLivro().setPagina((Integer) aValue);
            fireTableCellUpdated(rowIndex, columnIndex);
        } else if (columnIndex == 1) {
            t.setLivro((LRE) aValue);
        } else {
            t.setCtps((Atributo) aValue);
        }
    }

    @Override
    public boolean isCellEditable(int rowIndex, int columnIndex) {
        return true;
    }

    @Override
    public String getColumnName(int column) {
        return colunas[column];
    }

    public int getColumnCount() {
        return colunas.length;
    }

    public void elementoAdicionado(Trabalhador trabalhador) {
        if (trabalhador.getLivro() == null) {
            LRE livro = new LRE();
            trabalhador.setLivro(livro);
        }
        if (trabalhador.getCtps() == null) {
            Atributo ctps = new Atributo();
            trabalhador.setCtps(ctps);
        }
        fireTableRowsInserted(trabalhadores.size() - 1, trabalhadores.size() - 1);
    }

    public void elementoRemovido(Trabalhador trabalhador) {
        fireTableRowsDeleted(trabalhadores.size() - 1, trabalhadores.size() - 1);
    }
    
}
